LDPC code inspection matrix generation method and inspection matrix generation device

ABSTRACT

A method of generating check matrixes for Low-Density Parity-Check codes includes determination steps of determining a maximum value of a column weight, basic Euclid geometric codes, and a coding rate respectively; a weight searching step of searching an optimum ensemble of a row weight and a column weight at one time according to a linear programming method in a state of a fixed coding rate, and so as to maximize a Gaussian noise; an information calculation step of calculating an information length based on a predetermined block length and the coding rate; a row deletion step of deleting a predetermined row based on the information length using the Euclid geometric codes; and a division step of dividing at random a row or a column of the matrixes after the row deletion in a predetermined order.

TECHNICAL FIELD

The present invention relates to a method of generating check matrixesfor low density parity check (hereinafter “LDPC”) codes that are used aserror correction codes.

BACKGROUND ART

FIG. 27 is an illustration of an LDPC encoding/decoding system. ThisLDPC encoding/decoding system includes an encoder 101, a modulator 102,a channel 103, a demodulator 104, and a decoder 105. Prior to explaininga conventional method of generating check matrixes for LDPC codes,encoding and decoding using LDPC codes will be explained first.

At the sending side, the encoder 101 generates a check matrix H using acertain method, which will be described later, and generates a generatormatrix G based on the following conditions:

G: k×n matrix (where k: information length, n: code-word length),

GH^(T)=0 (T denotes transposition).

The encoder 101 then receives a message (m₁ m₂ . . . m_(k)) of aninformation length k, and generates a code-word C using the generatormatrix G as follows:

$\begin{matrix}{C = {\left( {m_{1}m_{2}\mspace{11mu}\ldots\mspace{11mu} m_{k}} \right)G}} \\{= {\left( {c_{1}c_{2}\mspace{11mu}\ldots\mspace{11mu} c_{n}} \right)\mspace{11mu}\left( {{{where}\mspace{14mu}{H\left( {c_{1}c_{2}\mspace{11mu}\ldots\mspace{11mu} c_{n}} \right)}^{T}} = 0} \right)}}\end{matrix}$

The modulator 102 subjects the generated code-word C to a digitalmodulation such as BPSK, QPSK or multi-valued QAM and transmits theresultant modulated signal.

At the receiving side, the demodulator 104 receives the modulated signalvia the channel 103, and subjects it to a digital demodulation such asBPSK, QPSK or multi-valued QAM. The decoder 105 then subjects theLDPC-coded, demodulated result to an iterative decoding by “Sum-ProductAlgorithm” and provides an estimated result (corresponding to theoriginal m₁ m₂ . . . m_(k)).

Conventionally, check matrixes for the LDPC codes are generated asexplained below. The check matrix proposed by Gallager, the proposer ofthe LDPC, is shown in FIG. 28, as an example.

This matrix is a binary matrix of “1” and “0”. Parts of “1” are hatchedand parts of “0” are white. There are four “1”s in one row (hereinafter,“row weight”), and there are three “1”s in one column (hereinafter,“column weight”). All columns and rows have respective uniform weights.Thus, it is generally called “Regular-LDPC Code”. In the Gallager'scodes, as shown in FIG. 28, the matrix is divided into three blocks, forexample, and the second and third blocks are subjected to randompermutation.

Because the random permutation has no certain rule, it is required toexecute a time-consuming search by computer to find codes with a bettercharacteristic.

Euclid geometric codes are such LDPC codes that exhibit a relativelystable and nice characteristic and can definitely generate a matrixwithout the use of the computer search. Y. Kou et al. (Y. Kou, S. Lin,and M. P. C. Fossorier, “Low Density Parity Check Codes Based on FiniteGeometries: A Rediscovery,” ISIT 2000, pp. 200, Sorrento, Italy, Jun. 25to 30, 2000. ) have proposed a method using such Euclid geometric codes.This method explains “Regular-LDPC Codes” consisting of regularensembles.

A method of generating a check matrix for LDPC codes is herein proposedusing Euclid geometric codes EG (2, 2⁶) or a kind of finite geometriccodes. This method achieves a characteristic that is located closely but1.45 decibels away from the Shannon limit at an error rate of 10⁻⁴. FIG.29 is an illustration of the Euclid geometric codes EG (2, 2²), whichhas a structure of “Regular-LDPC Codes” with row and column weights of4, 4.

Euclid geometric codes EG (m, 2^(s)) have a characteristic defined asfollows:

Code length: n=2^(2s)−1

Redundant bit length: n−k=3^(s)−1

Information length: k=2^(2s)−3^(s)

Minimum distance: d_(min)=2^(s)+1

Density: r=2^(s)/(2^(2s)−1)

As can be seen from FIG. 29, the Euclid geometric codes have a structurewith a location of “1” in each row shifted periodically from that in anadjacent row. It is a characteristic of this structure that it canconfigure codes easily and definitely.

The method of generating check matrix proposed by Y. Kou et al. furtherincludes changing row and column weights based on the Euclid geometriccodes to extend rows and columns, if required. For example, when acolumn weight in EG (2, 2²) is separated into halves, in the method ofY. Kou et al., every other one of four weights located in one column isseparated into two groups. FIG. 30 is an illustration of an exemplaryregular separation of the column weight from 4 into 2.

Ludy et al. (M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi, and D. A.Spielman, “Improved Low-Density Parity-Check Codes Using IrregularGraphs and Belief Propagation,” Proceedings of 1998 IEEE InternationalSymposium on Information Theory, pp. 171, Cambridge, Mass., Aug. 16 to21, 1998. ) have reported that “Irregular-LDPC Codes” have a bettercharacteristic than that of “Regular-LDPC Codes”. The “Irregular-LDPCCodes” represent such LDPC codes that have non-uniformity in either orboth of row and column weights.

Richardson et al. (T. J. Richardson and R. Urbanke, “The capacity oflow-density parity-check codes under message-passing decoding,” IEEETrans. Inform. Theory, vol. 47, No. 2, pp. 599 to 618, February 2001. )have analyzed it theoretically as well as Chung et al. (S.-Y. Chung, T.J. Richardson, and R. Urbanke, “Analysis of Sum-Product Decoding ofLow-Density Parity-Check Codes Using a Gaussian Approximation,” IEEETrans. Inform. Theory, vol. 47, No. 2, pp. 657 to 670, February 2001. )

In particular, Chung et al. have analyzed a “Sum-Product Algorithm” forLDPC codes, on the assumption that a Log Likelihood Ratio (hereinafter,“LLR”) between an input and an output at an iterative decoder can beapproximated in a Gaussian distribution, to derive a nice ensemble ofrow and column weights.

In the conventional method of generating check matrixes for LDPC codesby Chung et al., however, the number of “1” points in a row(corresponding to a degree distribution of variable nodes laterdescribed) and the number of “1” points in a column (corresponding to adegree distribution of check nodes later described) are both employed asvariables to derive the degree distribution of variable nodes and thedegree distribution of check nodes that can maximize the followingequation (1) (rate: coding rate). In a word, a linear programming isemployed to search an ensemble that minimizes a Signal to Noise Ratio(hereinafter, “SNR”).

$\begin{matrix}{{rate} = {1 - \frac{\int_{0}^{1}{\rho(x)}}{\int_{0}^{1}{\lambda(x)}}}} & (1)\end{matrix}$

Therefore, a problem arises because a check matrix derived from themaximum of the “rate” has a flux and unstable characteristic. Inaddition, the conventional method of generating check matrixes for LDPCcodes iteratively executes the derivation of the degree distribution ofvariable nodes and the derivation of the degree distribution of checknodes over certain times. Therefore, a problem arises that it takes atime to some extent for searching.

It is an object of the present invention to solve at least the problemsin the conventional technology.

DISCLOSURE OF THE INVENTION

A method of generating check matrixes for irregular-LDPC codes,according to one aspect of the present invention includes, a weightdetermination step of determining a maximum value of a column weight; abasic matrix determination step of determining a basic matrix thatfulfills conditions that “the weights of a row and a column areconstant” and that “the number of cycle is equal to or more than six”based on the maximum value of a column; weight a coding ratedetermination step ot determining a coding rate; a weight searching stepof searching an optimum ensemble of a row weight and a column weightaccording to a linear programming method in a state of a fixed codingrate, and so as to maximize a Gaussian noise; an information calculationstep of calculating an information length based on a predetermined blocklength and the coding rate; a row deletion step of deleting apredetermined row based on the information length using the basicmatrix; and a division step of dividing at random a row or a column ofthe matrixes after the row deletion in a predetermined order.

A method of generating check matrixes for irregular-LDPC codes usingEuclid geometric codes, according to one aspect of the present inventionincludes, a weight determination step of determining a maximum value ofa column weight; a Euclid geometric code determination step ofdetermining Euclid geometric codes based on the maximum value of acolumn weight; a coding rate determination step of determining a codingrate; a weight searching step of searching an optimum ensemble of a rowweight and a column weight according to a linear programming method in astate of a fixed coding rate, and so as to maximize a Gaussian noise; aninformation calculation step of calculating an information length basedon a predetermined block length and the coding rate; a row deletion stepof deleting a predetermined row based on the information length usingthe Euclid geometric codes; and a division step of dividing at random arow or a column of the matrixes after the row deletion in apredetermined order.

A method of generating check matrixes for irregular-LDPC codes,according to one aspect of the present invention includes, dividing theweight of a row or a column in the basic matrix that fulfills conditionsthat “the weights of a row and a column are constant” and that “thenumber of cycle is six or above” using a predetermined polynomial, anddeleting a “cycle number 6” that becomes an element of characteristicdegradation.

A method of generating check matrixes for irregular-LDPC codes usingEuclid geometric codes, according to one aspect of the present inventionincludes, dividing the weight of a row or a column in the Euclidgeometric codes using a predetermined polynomial, and deleting a “cyclenumber 6” that exists in the Euclid geometric codes and that becomes anelement of characteristic degradation.

A check matrix generation apparatus for irregular-LDPC codes, accordingto one aspect of the present invention includes, a weight determinationunit that determines a maximum value of a column weight; a basic matrixdetermination unit that determines a basic matrix that fulfillsconditions that “the weights of a row and a column are constant” andthat “the number of cycle is equal to or more than six” based on themaximum value of a column weight; a coding rate determination unit thatdetermines a coding rate; a weight searching unit that searches anoptimum ensemble of a row weight and a column weight according to alinear programming method in a state of a fixed coding rate, and so asto maximize a Gaussian noise; an information calculation unit thatcalculates an information length based on a predetermined block lengthand the coding rate; a row deletion unit that deletes a predeterminedrow based on the information length using the basic matrix; and adivision unit that divides at random a row or a column of the matrixesafter the row deletion in a predetermined order.

A check matrix generation apparatus for irregular-LDPC codes usingEuclid geometric codes, according to one aspect of the present inventionincludes, a weight determination unit that determines a maximum value ofa column weight; a Euclid geometric code determination unit thatdetermines Euclid geometric codes based on the maximum value of a columnweight; a coding rate determination unit that determines a coding rate;a weight searching unit that searches an optimum ensemble of a rowweight and a column weight according to a linear programming method in astate of a fixed coding rate, and so as to maximize a Gaussian noise; aninformation calculation unit that calculates an information length basedon a predetermined block length and the coding rate; a row deletion unitthat deletes a predetermined row based on the information length usingthe Euclid geometric codes; and a division unit that divides at random arow or a column of the matrixes after the row deletion in apredetermined order.

The other objects, features and advantages of the present invention arespecifically set forth in or will become apparent from the followingdetailed descriptions of the invention when read in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method of generating check matrixes for LDPCcodes according a first embodiment of the present invention; FIG. 2 isan illustration of an ensemble of a generator function λ(x) and agenerator function ρ(x) when the rate is 0.5; FIG. 3 is an illustrationof Euclid geometric codes EG (2, 2²); FIG. 4 is an illustration of acolumn number of “1” in each row in the Euclid geometric codes EG (2,2²) shown in FIG. 3; FIG. 5 is an illustration of a column number of “1”in each row after a rearrangement; FIG. 6 is an illustration of a columnnumber of “1” in each row after deleting five rows from the bottom inFIG. 5; FIG. 7 is an illustration of a weight distribution within acolumn after deleting rows; FIG. 8 is an illustration of a weightdistribution after deleting five rows in the Euclid geometric codes EG(2, 2⁵); FIG. 9 is an illustration of a weight distribution afterdeleting 189 rows in the Euclid geometric codes EG (2, 2⁵); FIG. 10 isan exemplary diagram of a division table; FIG. 11 is an illustration ofa weight distribution adjusting table; FIG. 12 is an illustration of anensemble of a generator function λ(x) and a generator function ρ(x)after a weight distribution; FIG. 13 is an illustration of aconventional dividing procedure; FIG. 14 is an illustration of a graphof EG (2, 2⁵) before division; FIG. 15 is an illustration of a graph ofEG (2, 2⁵) after division of a random selection of an edge; FIG. 16 isan illustration of a relation between an Eb/No and a bit error rate;FIG. 17 is an illustration of an ensemble of “Regular-LDPC Codes”; FIG.18 is an illustration of an ensemble of “Irregular-LDPC Codes”; FIG. 19is an illustration of a permutation pattern LBj (i) of a basic randomsequence C(i) and, a basic random sequence; FIG. 20 is an illustrationof Latin square sequences L_(jq) (i); FIG. 21 is an illustration of LDPCcodes shown in FIG. 29 expressed by a bipartile graph; FIG. 22 is anexemplary diagram of a cycle 4 and a cycle 6; FIG. 23 is an illustrationof a row number of “1” in each column in the Euclid geometric codes EG(2, 2²) shown in FIG. 3; FIG. 24 is an illustration of a matrix when theweight of the column is 2 by separating the matrix shown in FIG. 23according to the expression (19); FIG. 25 is an illustration of a matrixcol_s2_4 (i, j) when the weight of the matrix col (i, j) is simplyseparated into former two columns and latter two columns; FIG. 26 is anillustration of a matrix col_s2_4′ (i, j) when the column is separatedbased on a method according to the second embodiment; FIG. 27 is anillustration of an LDPC encoding/decoding system; FIG. 28 is anillustration of a conventional check matrix for LDPC codes; FIG. 29 isan illustration of a configuration of Euclid geometric codes EG (2, 2²);and FIG. 30 is an illustration of an exemplary column weight regularlyseparated from 4 into 2.

BEST MODE FOR CARRYING OUT THE INVENTION

Exemplary embodiments of methods of generating check matrixes for LDPCcodes and a check matrixes generation apparatus according to the presentinvention will be explained in detail below based on the drawings. Itshould be noted that the embodiments are not intended to limit theinvention.

FIG. 1 is a flowchart of a method of generating check matrixes for LDPCcodes according to a first embodiment of the present invention. Themethod of generating check matrixes for LDPC codes according to thepresent embodiment may be executed on a communication apparatusaccording to set parameters, or may be executed on other control unit(such as a computer) outside of the communication apparatus. When themethod of generating check matrixes for LDPC codes is generated on thecontrol unit, check matrixes generated for LDPC codes are stored in thecommunication apparatus. It is assumed here that the method is executedon the communication apparatus.

Prior to explanation of the method of generating check matrixes for LDPCcodes according to the present embodiment, the positions of an encoderand a decoder capable of achieving the method is explained firsttogether with the conventional method of generating check matrixes for“Irregular-LDPC Codes”. The LDPC encoding/decoding system has the sameconfiguration as that previously explained in FIG. 27.

At the sending side, the encoder 101 generates a check matrix H usingthe method of generating check matrixes for LDPC codes according to thepresent embodiment and generates a generator matrix G based on thefollowing conditions:

G: k×n matrix (k: information length, n: code-word length)

GHT^(T)=0 (T denotes transposition)

The encoder 101 then receives a message (m₁ m₂. . . m_(k)) of aninformation length k, and generates a code-word C using the generatormatrix G.

$\begin{matrix}{C = {\left( {m_{1}m_{2}\mspace{11mu}\ldots\mspace{11mu} m_{k}} \right)G}} \\{= {\left( {c_{1}c_{2}\mspace{11mu}\ldots\mspace{11mu} c_{n}} \right)\mspace{11mu}\left( {{{where}\mspace{14mu}{H\left( {c_{1}c_{2}\mspace{11mu}\ldots\mspace{11mu} c_{n}} \right)}^{T}} = 0} \right)}}\end{matrix}$

The modulator 102 subjects the generated code-word C to digitalmodulation such as BPSK, QPSK or multi-valued QAM and transmits theresultant modulated signal.

At the receiving side, the demodulator 104 receives the modulated signalvia the channel 103, and subjects it to digital demodulation such asBPSK, QPSK or multi-valued QAM. The decoder 105 then subjects theLDPC-coded, demodulated result to an iterative decoding by “Sum-ProductAlgorithm” and provides an estimated result (corresponding to theoriginal (m₁ m₂ . . . m_(k))).

Chung et al. (S.-Y. Chung, T. J. Richardson, and R. Urbanke, “Analysisof Sum-Product Decoding of Low-Density Parity-Check Codes Using aGaussian Approximation,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp.657 to 670, February 2001. ) have theoretically analyzed theconventional method of generating check matrixes for “Irregular-LDPCCodes”. The method is explained next in detail. In this method, a“Sum-Product Algorithm” for LDPC codes is analyzed, on the assumptionthat a Log Likelihood Ratio (LLR) between an input and an output at aniterative decoder can be approximated in a Gaussian distribution, toderive a nice ensemble of row and column weights.

The method of generating check matrixes for LDPC codes described inChung et al., or Gaussian Approximation, has a premise that defines apoint of “1” on a row as a variable node and a point of “1” on a columnas a check node in the check matrix.

LLR message propagation from a check node to a variable node is analyzedfirst. The following equation (2) is defined on condition that 0<s<∞ and0≦t<∞. Here, s=m_(u0) denotes a mean of u0; u0 a Log Likelihood Ratio(LLR) associated with a signal received via a channel containing aGaussian noise of distributed value σ_(n) ²; and t an ensemble averageof LLR output values at check nodes at the time of certain iteration.

$\begin{matrix}\begin{matrix}{\;{{{fj}\left( {s,t} \right)} = {\phi^{- 1}\left( {1 - \left\lbrack {1 - {\sum\limits_{i = 2}^{d_{l}}\;{\lambda_{i}{\phi\left( {s + {\left( {i - 1} \right)t}} \right)}}}} \right\rbrack^{j - 1}} \right)}}} \\{{{f\left( {s,t} \right)} = {\sum\limits_{j = 2}^{d_{r}}\;{\rho_{j}{f_{j}\left( {s,t} \right)}}}}\mspace{265mu}}\end{matrix} & (2)\end{matrix}$

λ(x) and ρ(x) respectively denotegenerator functions of degreedistribution associated with variable nodes and check nodes, and can berepresented by the equations (3) and (4). (A degree is expressed as thenumber of “1”s in each row of variable nodes or each column of checknodes). In addition, λ_(i) and ρ_(i) respectively denote ratios of edgesbelonging to variable nodes and check nodes at a degree of i. Finally,d_(I) denotes a degree of maximum variable nodes, and d_(r) a degree ofmaximum check nodes.

$\begin{matrix}{{\lambda(x)} = {\sum\limits_{i = 2}^{d_{l}}\;{\lambda_{i}x^{i - 1}}}} & (3) \\{{\rho(x)} = {\sum\limits_{i = 2}^{d_{r}}\;{\rho_{i}x^{i - 1}}}} & (4)\end{matrix}$φ(x) is defined as the following equation (5):

$\begin{matrix}{{\phi(x)} = \left\{ \begin{matrix}1 & {{- \frac{1}{\sqrt{4\;\pi\; x}}}{\int_{R}^{\;}{\tanh{\frac{u}{2} \cdot {\mathbb{e}}^{- \frac{{({u - x})}^{2}}{4x}}}\ {\mathbb{d}u}}}} & {{{if}\mspace{14mu} x} > 0} \\1 & \; & {{{if}\mspace{14mu} x} \leq 0}\end{matrix} \right.} & (5)\end{matrix}$The equation (2) can be represented equivalently by the followingequation (6):t _(I) =f(s, t _(I−1))  (6)where t_(I) denotes an ensemble average of LLR output values on checknodes at the time of the I-th iteration.

A condition required for deriving an SNR limit (threshold) that providesan error with a value of 0 includes t_(I)(s)→∞ (expressed as R⁺) whenI→∞. In order to satisfy this condition, it is required to satisfy thefollowing conditional expression (7):t<f(s, t), all t∈R ⁺  (7)

LLR message propagation from a variable node to a check node is analyzednext. The following equation (8) is defined on condition that 0<s<∞ and0<r≦1. In this case, r has an initial value r₀ of φ(s).

$\begin{matrix}\begin{matrix}{{h_{i}\left( {s,r} \right)} = {\phi\left( {s + {\left( {i - 1} \right){\sum\limits_{j = 2}^{d_{r}}\;{\rho_{j}{\phi\left( {1 - \left( {1 - r} \right)^{j - 1}} \right)}}}}} \right)}} \\{{{h\left( {s,r} \right)} = {\sum\limits_{i = 2}^{d_{l}}\;{\lambda_{i}{h_{i}\left( {s,r} \right)}}}}\mspace{250mu}}\end{matrix} & (8)\end{matrix}$The equation (8) can be represented equivalently by the followingequation (9):r _(I) =h(s, r _(I−1))  (9)

A condition required for deriving an SNR limit (threshold) that providesan error with a value of 0 includes r_(I)(s)→0. In order to satisfy thiscondition, it is required to satisfy the following conditionalexpression (10):r>h(s, r), all r∈(0, φ(s))  (10)

In the paper by Chung et al., optimal degrees are searched for variablenodes and check nodes using the above equation in the followingprocedure (i.e., Gaussian Approximation):

(1) On the assumption that a generator function λ(x) and a Gaussiannoise σ_(n) are given, a generator function ρ(x) is used as a variableto search a point that maximizes the equation (1). A constraintcondition associated with this search includes normalization to ρ(x)=1and satisfaction of the equation (7).

(2) On the assumption that a generator function ρ(x) and Gaussian noiseσ_(n) are given (as a value resulted from the procedure (1), forexample), a generator function λ(x) is used as a variable to search apoint that maximizes the equation (1). A constraint condition associatedwith this search includes normalization to λ(x)=1 and satisfaction ofthe equation (10).

(3) In order to find the maximum “rate”, the steps (1) and (2) areiteratively executed to search a better ensemble of the generatorfunction λ(x) and the generator function ρ(x) with a linear programming.

(4) Finally, signal power is normalized to 1 based on Gaussian noiseσ_(n) to find an SNR limit (threshold).threshold (dB)=−10*log 10(2*σ_(n) ²)  (11)

A problem is found in the method of Chung et al. because a check matrixderived from the maximum of the “rate (coding rate)” is flux. Such thecheck matrix is not suitable for practical design because the rate fixedin design as a spec varies. In addition, the Gaussian Approximationiteratively executes the derivation of the degree distributionassociated with variable nodes and the derivation of the degreedistribution associated with check nodes over certain times. Therefore,a problem arises that it takes time to some extent for searching.Further, a problem arises that the check matrix does not easily apply toan optional ensemble, an optional code length, and an optional codingrate.

The present invention provides a method of a definite andcharacteristic-stabilized check matrix for “Irregular-LDPC Codes”, whichcorresponds to an optional ensemble, an optional code length, and anoptional coding rate, is searched easily in a short time (refer to FIG.1). Specifically, the check matrix for “Irregular-LDPC Codes” isgenerated by dividing or deleting the arrangement of “1” in one row orone column in the Euclid geometric codes. FIG. 1 is an illustration ofthe method of generating check matrixes for LDPC codes of the firstembodiment.

In the method of generating a check matrix for LDPC codes according tothe present embodiment, a maximum value dI of the column weight is firstdetermined (step S1, FIG. 1). As an example, dI is set equal to 32.

Euclid geometric codes EG (2, 2^(s)) as the base are selected based onthe column weight dI (step S2). For example, when dI=32, the columnweight 2^(s) of the Euclid geometric codes EG (2, 2^(s)) becomes s=5.Therefore, Euclid geometric codes EG (2, 2⁵) are selected. In general, sthat fulfills the condition of 2^(s−1)<dI<2^(s+1) is selected.

A coding rate (rate) is determined (step S3). A case when the rate is0.5 will be explained, for example.

The ensemble of the generator function λ(x) of the degree distributionof the variable node and the generator function ρ(x) of the degreedistribution of the check node is obtained with the later-describedGaussian Approximation (step S4). FIG. 2 is an illustration of anensemble of the generator function λ(x) and the generator function ρ(x)with the rate=0.5, where x denotes a weight, and λ_(x) and ρ_(x) denotethe weight distributions of the variable node and the check noderespectively.

Steps of executing the Gaussian Approximation to search the ensemble ofthe generator function λ(x) of the degree distribution of the variablenode and the generator function ρ(x) of the degree distribution of thecheck node will be explained.

(1) It is assumed that the “rate” is given. That is, a requisite “rate”is fixed because a target “rate” is often designated previously inpractical design.

(2) A generator function λ(x) and a generator function ρ(x) aresimultaneously used as variables, and a linear programming is employedto search optimal generator functions λ(x) and ρ(x) that can maximizeGaussian noise σ_(n). A constraint condition associated with this searchincludes normalization to λ(1)=1, ρ(1)=1 and satisfaction of theequation (10).

Thus, the present embodiment employs the linear programming once to findsuch generator functions λ(x) and ρ(x) that satisfy the equations (9)and (10). Therefore, it is possible to search a definite andcharacteristic-stabilized check matrix for LDPC codes more easily in ashorter time than the method described in the paper that iterativelyexecutes derivation of the generator functions λ(x) and ρ(x) to deriveboth optimal values.

The ensemble is obtained at step S4. The block length N is obtained, andthe information length K is fixed from the block length N (step S5). Kis obtained as follows when N=5000.K=N×rate=5000×0.5=2500

Next, rows corresponding to the information length K are deleted (stepS6). Row deletion methods (a first deletion method, and a seconddeletion method) according to the present embodiment will be explainedin detail. The number of rows and the number of columns of the Euclidgeometric codes EG (2, 2^(s)) that become the base can be expressed as2⁵×2⁵−1.

According to the first deletion method, one row of a weight 32 isdivided into one row of a weight 10 and two rows of a weight 11 based onthe ensemble shown in FIG. 2. In this example, the ratio of a weight 10becomes ρ₁₀=10/32=0.3125, and the ratio of a weight 6 becomesρ₁₀=22/32=0.6875. The number of rows R_(EG) of the Euclid geometriccodes EG (2, 2^(s)) is R_(EG)=2⁵×2⁵−1=1023. Accordingly, the number ofrows of the weight 10 becomes 1023, and the number of rows of the weight11 becomes 2046. As a result, the total row number R_(T) becomesR_(T)=1023+2046=3069. Therefore, the number of deleting rows D_(r)becomes as follows by utilizing the fact that the number of rows in thecheck matrixes coincides with the information length K.D _(r) =R _(T) −K

To divide each row of the weight 32 into one row of the weight 10 andtwo rows of the weight 11, a random division, that is, a “divisionmethod using the Latin square of basic random sequences” described lateris executed, for example.

As explained above, according to the first deletion method, in order todivide one row of the weight 32 into one row of the weight 10 and tworows of the weight 11, D_(r)=R_(T)−K=3069−2500=569 rows are deleted fromthe matrixes after the division. 569 rows are deleted without changingthe ratio ρ₁₀, and ρ₁₁ as far as possible.

According to the second deletion method on the other hand, the rows aredeleted at the stage of the basic Euclid geometric codes EG (2, 2^(s)).The number of rows to be deleted D_(r) _(—) _(EG) is obtained from thebasic Euclid geometric codes EG (2, 2^(s)) as follows:D _(r) _(—) _(EG) =R _(EG)×(R _(T) −K)/R _(T)When D_(r) _(—) _(EG)=1023×569/3069=189.6667, for example, 189 rows aredeleted from the Euclid geometric codes EG (2, 2⁵).

In this case, when rows are divided at random after the deletion, thenumber of rows also becomes (1023−569)×3=2502, which becomes close tothe target code length 2500. Actually, after 189 rows are deleted fromthe Euclid geometric codes EG (2, 2⁵), a random division is carried outfor 1023−189=834 rows, thereby to obtain 834×3=2502 rows (each row isdivided into one row of the weight 10 and two rows of the weight 11),with the remainder of two rows abandoned.

The second deletion method will be explained in detail with reference tothe drawings. For the sake of convenience of explanation, the Euclidgeometric codes EG (2, 2²) are used. FIG. 3 is an illustration of Euclidgeometric codes EG (2, 2²) (where a blank box represents zero). FIG. 4is an illustration of a column number of “1”s in each row in the Euclidgeometric codes EG (2, 2²) shown in FIG. 3. The row number of each row“1” is expressed as Row (i, j) (where i denotes a row number, and jdenotes a column number). For example, the first row of the Euclidgeometric codes EG (2, 2²) is expressed as Row (1, j)={1, 5, 13, 14}.

The order of the rows is rearranged to set the first column of the Row(i, j) in an ascending order based on FIG. 4. FIG. 5 is an illustrationof a column number of “1”s in each row after the rearrangement. Thecolumn number of “1” of each row after the rearrangement is expressed asRow′ (i, j).

When five rows are to be deleted, for example, five rows from the bottomof Row′ (i, j) are deleted. FIG. 6 is an illustration of a column numberof “1”s in each row after deleting five rows from the bottom in FIG. 5.The column number of “1”s of each row after the deletion is expressed asRow_5′ (i, j). FIG. 7 is an illustration of a weight distribution withinthe column after deleting rows, expressing a relationship between thecolumn number and the number of “1”s included in this column in FIG. 6.FIG. 8 is an illustration of a weight distribution after deleting fiverows in the Euclid geometric codes EG (2, 2⁵).

FIG. 9 is an illustration of a weight distribution after deleting 189rows in the Euclid geometric codes EG (2, 2⁵) in a process similar tothat of the second deletion method.

At step S6, the rows are deleted. Finally, the columns are divided (atstep S7). The division method according to the present embodiment willbe explained in detail with reference to FIG. 2 for the sake of theconvenience. The value of x of the weight distribution λ_(x) and thevalue of x of the weight distribution ρ_(x), that is, the weight of thecolumn and the row, can structure 32, based on the combination of xrespectively. FIG. 10 is an illustration of a division table. Forexample, a combination of 7×4 and 2×2 indicates that one column of theweight 32 can be divided into four columns of the weight 7 and twocolumns of the weight 2. When the weight of each row and each columnthat become the basis can suitably divide the Euclid geometric codes EG(2, 2⁵) as shown in FIG. 10, the check matrixes for “Irregular-LDPCCodes” can be configured. Although not shown in FIG. 10, rows can bedivided in a similar manner for the column weights 31, 30, 29, 28, 27,26, 25, 24, 23, 22, and 21 (refer to FIG. 9).

Prior to the dividing process, the weight distributions in the ensembleof generator functions λ(x) and ρ(x) shown in FIG. 2 are subjected toadjustment in the following procedures. FIG. 11 is an illustration of atable for adjusting a weight distribution.

(1) The ensemble of the generator functions λ(x) and ρ(x) (see FIG. 2)found through Gaussian Approximation is set in the table on the secondcolumn and the third column.

(2) The weight distributions λ_(x) and ρ_(x) (the third column) aremultiplied by the total number of “1”s, TP=26688, in the entire Euclidgeometric codes EG (2, 2⁵) to find the total weight number of weightunits, and the total weight number of weight units and a sum thereof areset on the fourth column.

(3) The total weight number of weight units (on the fourth column) isdivided by the corresponding weight of x to find the total column numberof weight units, which is set on the fifth column.

(4) If the total column number of weight units contains a fraction afterthe decimal point, a rounding process (such as rounding off, roundingup, and rounding down) is performed, and the rounded result is set onthe sixth column.

(5) The rounded total column number of weight units (on the sixthcolumn) is multiplied by the corresponding weight of x to find the totalcolumn number of weight units after the rounding process, which is seton the seventh column. It is then determined whether each sum of thetotal column numbers (a total row on the seventh column) is equal to thetotal number of “1”s in the matrix (TP=26688).

(6) If it is not equal to the total number of “1”s in the matrix, therounded total column number of weight units (on the seventh column) isadjusted on an integer basis, and the adjusted result is set on theeighth column. In this case, the sum on the eighth column is adjusted tohave a value equal to the total number of “1”s in the matrix (TP=26688).

(7) The adjusted total weight number of weight units (on the eighthcolumn) is divided by the corresponding weight of x to find the adjustedtotal column number of weight units, which is set on the ninth column.Each adjusted weight distribution (on the eleventh column) is determinedto have a value as close to the value found through GaussianApproximation (on the third column) as possible.

FIG. 12 is an illustration of an ensemble of a generator function λ(x)and a generator function ρ(x) after the weight distribution. In thisfigure, σ_(GA) denotes a noise variance at the time of the “threshold”obtained by the Gaussian Approximation, and SNR_(norm) (GA) denotes adifference between SNR at the time of the “threshold” obtained by theGaussian Approximation and SNR of Shannon limit.

A procedure of dividing one row or one column in Euclid geometric codesis explained next. Y. Kou et al. have proposed a regular dividing methodwith respect to the dividing procedure. FIG. 13 is an illustration ofthe dividing procedure proposed in the paper. As shown in FIG. 13, amatrix is numbered with column numbers 1, 2, 3 . . . in sequence fromthe left end and row numbers 1, 2, 3 . . . in sequence from the top. Forexample, 32 points×1 row can be divided into 8 points×4 rows regularlyin accordance with the following equation (12):S _(m)(n)=B _(I)(m+4*n)  (12)where m=1, 2, 3, 4; n=0, 1, 2, 3, 4, 5, 6, 7; and I denotes a columnnumber in EG (2, 2⁵). B_(I)(x) denotes a position of “1” on the I-thcolumn in EG (2, 2⁵), and S_(m)(n) a position of “1” on the m-th columnin the divided matrix.

Specifically, a row number indicative of a position of “1” on a row inEG (2, 2⁵) is represented by:

B₁ (x)={1 32 114 136 149 223 260 382 402 438 467 507 574 579 588 622 634637 638 676 717 728 790 851 861 879 947 954 971 977 979 998}

-   As a result, extracting a number indicative of “1” from B_(I)(x)    regularly, row numbers indicative of positions of “1” on the 1st to    4th columns in the divided matrix are represented by:

S₁ (n)={1 149 402 574 634 717 861 971}

S₂ (n)={32 223 438 579 637 728 879 977}

S₃ (n)={114 260 467 588 638 790 947 979}

S₄ (n)={136 382 507 622 676 851 954 998}

Thus, 32 points×1 row can be divided into 8 points×4 rows.

On the other hand, in the dividing procedure according to the presentembodiment, Euclid geometric codes are not divided regularly asdescribed above. Rather, a number indicative of “1” is extracted fromB_(I)(x) at random. Any extracting process may be applied so long as itcan retain randomness.

Accordingly, on the m-th column in the divided matrix, an exemplaryposition of “1”, R_(m)(n), is represented by:

R₁ (n)={1 114 574 637 851 879 977 979}

R₂ (n)={32136 402 467 588 728 861 971}

R₃ (n)={149 260 382 438 579 638 717 998}

R₄ (n)={223 507 622 634 676 790 947 954}

The dividing procedure of the present embodiment can be expressed on agraph as follows. FIG. 14 is an illustration of a graph of EG (2, 2⁵)before division. A line connecting both nodes is expressed as an edge.FIG. 14 shows Euclid geometric codes in 1023 rows×1023 columns (witheach row/column weight of 32) before division. FIG. 15 is anillustration of a graph after the division, which selects edges from EG(2,2⁵) at random.

Characteristics of the LDPC codes previously described are comparedbelow. FIG. 16 is an illustration of a relation between an Eb/No (Signalpower to Noise power per information bit) to a bit error rate(hereinafter, “BER”). The number of iteration is equal to 50 times. Thedecoding method is a “Sum-Product Algorithm”.

In FIG. 16, “Simple regular extended EG (2,2⁵)” correspond to“Regular-LDPC Codes” with rate=0.5 when a regular column division in EG(2,2⁵) proposed by Y. Kou et al. is performed (refer to the conventionaltechnique). “Random regular extended EG (2,2⁵)” correspond to“Regular-LDPC Codes” with rate=0.5 when a random column division in EG(2,2⁵) according to the present embodiment is performed. FIG. 17 is anillustration of an ensemble of these “Regular-LDPC Codes”.

In FIG. 16, “Simple irregular extended EG (2,2⁵)” correspond to“Irregular-LDPC Codes” with rate=0.5 when a regular column division inEG (2,2⁵) proposed by Y. Kou et al. is performed to the ensemblespecified in the method in FIG. 18. “Random irregular extended EG(2,2⁵)” correspond to “Irregular-LDPC Codes” with rate=0.5 when a randomcolumn division in EG (2,2⁵) according to the present embodiment isperformed to the ensemble specified in the method in FIG. 18. FIG. 18 isthe diagram of the ensemble of these “Irregular-LDPC Codes”.

As can be seen from FIG. 16, “Irregular-LDPC Codes” have a betterperformance than that of “Regular-LDPC Codes” at the same rate. Theregular division proposed in the paper of Y. Kou et al. can not allow alarger improvement even with “Irregular-LDPC Codes”. In contrast, therandom division of the present embodiment can provide a remarkablyimproved performance when it is implemented.

As explained above, in the present embodiment, the maximum value dl ofthe column weight is first determined. Next, the Euclid geometric codesEG (2, 2^(s)) as the base are selected based on the column weight dl.The coding rate (rate) is determined next. Next, the ensemble of thegenerator function λ(x) of the degree distribution of the variable nodeand the generator function ρ(x) of the degree distribution of the checknode is obtained using the Gaussian Approximation. Next, the informationlength K is firmed from the predetermined block length N, and thedeletion processing corresponding to the information length K is carriedout in the predetermined order. Finally, the column division processingis carried out in the predetermined order. With this arrangement, adefinite and characteristic-stabilized check matrix for “Irregular-LDPCCodes” can be generated easily in a short time corresponding to anoptional ensemble, an optional code length, and an optional coding rate.

An example of the random division is detailed next. In other words, the“division method using the Latin square of basic random sequences” willbe explained in detail. A random sequence is generated easily anddefinitely for the random division. This method has an advantage thatthe sending side and the receiving side can generate the same randomsequence. This is extremely important in a practical system. There isanother advantage that a condition associated with code characteristicscan be defined correctly.

(1) Creation of basic random sequences:

An example of random sequence creation is described below using Euclidgeometric codes EG (2,2⁵) for convenience of explanation. In Euclidgeometric codes EG (2,2⁵), the number of “1”s present in a row is equalto 2⁵=32.

When P is used for the minimum prime number that satisfies P≧2^(s), forexample, P=37 in the case of 2⁵. A basic random sequence C(i) with asequence length, P−5=32, is created in accordance with the equation(13):C(1)=1C(i+1)=G₀ ×C(i)mod P  (13)where i=0, 1, . . . , P−2; and G₀ denotes an original source of GaloisField GF(P). As a result, C(i) is represented by:

-   -   C (i)={1 2 4 8 16 32 27 17 34 31 25 13 26 15 30 23 9 18 36 35 33        29 21 5 10 20 3 6 12 24 11 22 7 14 28 19}        (2) Numbers larger than 32 are deleted so as to obtain the        sequence length 2⁵=32.    -   C (i)={1 2 4 8 16 32 27 17 31 25 13 26 15 30 23 9 18 29 21 5 10        20 3 6 12 24 11 22 7 14 28 19}        (3) A skip interval S (j) is defined as in equation (14) to read        the basic random sequence at a constant interval:        S(j)=j where j=1, 2, . . . , 2^(s)  (14)        (4) A transposition pattern LBj (i) is prepared using the        following equation (15):        j=1, 2, . . . , 2^(s)        i=1, 2, . . . P−1  (15)        For LBj (i), numbers larger than 2^(s) are deleted. FIG. 19 is        an illustration of a permutation pattern LBj (i) of the basic        random sequence C(i) and a basic random sequence.        (5) A j-th Latin square sequences L_(jp) (i) in the column q and        the row i is calculated from the following equation (16):        L_(jp)(i)=LB _(j)(((q+i−2)mod 2^(s))+1)        j=1, 2, . . . , 2^(s)        i=1, 2, . . . , 2^(s)        q=1, 2, . . . , 2^(s)  (16)

FIG. 20 is an illustration of Latin square sequences L_(jq) (i). TheLatin square sequences L_(jq) (i) are used to determine a divisionpattern of the j×32+q-th column of the matrix to be expanded (forexample, the matrix shown in FIG. 12). For example, the 670-th columng₆₇₀ (I) of the Euclid geometric codes EG (2,2⁵) to be shortened bydeletion is determined as follows:

g₆₇₀ (I)={28 48 84 113 153 220 225 234 268 280 283 284 322 363 374 436497 507 525 593 600 617 623 625 644 670 701 783 805 818 892 929}

This is divided into five columns of the weight 6 and one column of theweight 2. The corresponding Latin square L_(jq) (i) is 20×32+30=670.Therefore, the following Latin square is obtained:

L_(21, 30) (i)={13 19 9 10 16 24 25 28 23 5 8 12 31 14 30 21 4 6 17 7 1529 2 3 27 22 26 18 1 20 32 11}

As a result, the division pattern becomes as follows:

$\begin{matrix}\begin{matrix}{{g_{670,1}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}322 & 525 & 268 & 280 & 436 & 625\end{Bmatrix}\mspace{20mu} i} = 1}},2,\;\ldots\mspace{11mu},6}\end{matrix} \\\begin{matrix}{{g_{670,2}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}644 & 783 & 623 & 153 & 234 & 284\end{Bmatrix}\mspace{20mu} i} = 7}},8,\;\ldots\mspace{11mu},12}\end{matrix} \\\begin{matrix}{{g_{670,3}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}892 & 363 & 818 & 600 & 113 & 220\end{Bmatrix}\mspace{20mu} i} = 13}},14,\;\ldots\mspace{11mu},16}\end{matrix} \\\begin{matrix}{{g_{670,4}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}497 & 225 & 374 & 805 & 48 & 84\end{Bmatrix}\mspace{25mu} i} = 17}},18,\;\ldots\mspace{11mu},24}\end{matrix} \\\begin{matrix}{{g_{670,5}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}701 & 617 & 670 & 507 & 28 & 593\end{Bmatrix}\mspace{20mu} i} = 25}},26,\;\ldots\mspace{11mu},30}\end{matrix} \\\begin{matrix}{{g_{670,6}(l)} = {g_{670}\left( {L_{21,30}(l)} \right)}} \\{{= {{\begin{Bmatrix}929 & 283\end{Bmatrix}\mspace{20mu} i} = 31}},32}\end{matrix}\end{matrix}$

As a second embodiment of the present invention the LDPC codes (i.e.,the check matrixes for LDPC codes) are expressed by a bipartile graph(that is, a tanner graph consisting of two kinds of elements of softAND, and soft EXOR) as a general expression method, for example. FIG. 21is an exemplary diagram of LDPC codes shown in FIG. 29 expressed by abipartile graph. As shown in this diagram, the variable node isexpressed by the soft AND, and the check node is expressed by the softEXOR on the bipartile graph.

In the coding/decoding using the LDPC codes, in general, when there aresmaller number of a cycle 4, a cycle 6, and higher cycles on thebipartite graph, more satisfactory characteristics can be obtained. FIG.22 is an exemplary diagram of a cycle 4 and a cycle 6.

Particularly, as elements that degrade the characteristics, the cycle 4has the largest influence. When the cycle number becomes larger, theinfluence becomes smaller. Accordingly, for the LDPC codes, a structurethat restrict the generation of small cycles like the cycle 4 and thecycle 6 is preferable.

In the method of generating check matrixes for LDPC codes according tothe second embodiment, decoding characteristics are improved by deletingthe cycle 6 that exists in the Euclid geometric. codes. The cycle 4 doesnot exist in the base Euclid geometric codes, and the characteristicsare not changed even if rows and columns are divided or deleted(including the division and deletion according to the first embodiment).

FIG. 23 is an illustration of a row number of “1” in each column in theEuclid geometric codes EG (2, 2²) shown in FIG. 3. This matrix isexpressed as col (i, j). In col (i, j), a polynomial W(X) that expressesthe position of “1” in col (i, j) can express the top row as shown inthe following equation (17):W(X)=X ¹⁻¹ 30 X ³⁻¹ +X ⁴⁻¹ +X ¹²⁻¹  (17)

The Euclid geometric codes can be expressed in a format having this onepolynomial cyclically shifted, as given by the following equation (18):W(X)=X ^((i−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+2)−1)mod(2) ^(2s) ⁻¹⁾ +X^(((i+3)−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+11−1)mod(2) ^(2s) ⁻¹⁾, where i=1,2, . . . , 2^(2s)−1  (18)

To delete the cycle number 6 that exists in the Euclid geometric codes,the column weight is separated from 4 into 2. In other words, theequation (18) is separated into the former part and the later part, asgiven by the following equation (19):W ₁(X)=X ^((i−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+2)−1)mod(2) ^(2s) ⁻¹⁾ ,i=1, 2,. . . , 2^(2s)−1W ₂(X)=X ^(((i+3)−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+11)−1)mod(2) ^(2s) ⁻¹⁾ ,i=1, 2, . . . , 2^(2s)−1  (19)

FIG. 24 is an illustration of a matrix when the weight of the column is2 by separating the matrix shown in FIG. 23 according to the expression(19). This matrix is expressed as cols_s2 (i, j). The LDPC codescorresponding to the matrix shown in FIG. 24 separated by the aboveprocessing have no cycle 6 at all. The separation based on thepolynomial may be a pair of degrees. In other words, the matrix may beseparated using the following equation (20):W ₁(X)=X ^(((i−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+3)−1)mod(2) ^(2s) ⁻¹⁾ , i=1,2, . . . , 2^(2s)−1W ₂(X)=X ^(((i+2)−1)mod(2) ^(2s) ⁻¹⁾ +X ^(((i+11)−1)mod(2) ^(2s) ⁻¹⁾ ,i=1, 2, . . . , 2^(2s)−1  (20)

As explained above, when the Euclid geometric codes have the weight 4,the column weight can be separated from 4 into 2 using the equation (19)or the equation (20), thereby to completely remove the cycle 6. However,the cycle 6 can be completely removed when all the weight of the columnis separated into 2. Therefore, when there is already other columnhaving the weight equal to or more than 3, that is, in the case of the“Irregular-LDPC Codes”, the cycle 6 can be removed but can not beremoved completely.

FIG. 25 is an illustration of a matrix col_s2_4 (i, j) when the weightof the matrix col (i, j) is simply separated into former two columns andlatter two columns as a procedure to separate a column having the weight4 into 20 columns having the weight 2 and 5 columns having the weight 4.In the matrix cols_s2_4 (i, j) shown in FIG. 25, the number of the cycle6 becomes 35. On the other hand, FIG. 26 is an illustration of a matrixcol_s2_4′ (i, j) when the column is separated based on the aboveequation. In the matrix col_s2_4′ (i, j) shown in FIG: 26, the number ofthe cycle 6 becomes 33, which is smaller than the number shown in FIG.25.

As explained above, according to the present embodiment, the weight ofthe column is separated to decrease the number of the cycle 6 thatexists in the Euclid geometric codes and that becomes the element of thecharacteristic degradation. Therefore, the decoding characteristics canbe improved.

In the first and second embodiments, the Euclid geometric codes are usedas the basic codes (i.e., the basic matrix). However, a matrix otherthan the Euclid geometric codes, such as, projective geometric codes,may also be used if it fulfills the conditions that “the weights of arow and a column are constant” and that “the number of cycle is equal toor more than six”.

As explained above, according to the present invention, a definite andcharacteristic-stabilized check matrix for “irregular-LDPC Codes” can begenerated easily in a short time corresponding to an optional ensemble,an optional code length, and an optional coding rate.

Moreover, the check matrix for “irregular-LDPC Codes” can be generatedeasily in a short time corresponding to an optional ensemble, anoptional code length, and an optional coding rate.

Furthermore, the dividing is performed in higher precision.

Furthermore, the condition for code characteristics can be prescribedaccurately.

Furthermore, the decoding characteristics can be improved substantially.

Although the invention has been described with respect to a specificembodiment for a complete and clear disclosure the appended claims arenot to be thus limited but are to be construed as embodying allmodifications and alternative constructions that may occur to oneskilled in the art which fairly fall within the basic teaching hereinset forth.

INDUSTRIAL APPLICABILITY

As explained above, the method of generating check matrixes for LDPCcodes and the check matrix generation apparatus according to the presentinvention are useful for the communication system that employs the LDPCcodes as error correction codes. Particularly, the method and theapparatus are suitable for an apparatus that generates definite andcharacteristic-stabilized “Irregular-LDPC Codes”.

1. A method of generating check matrixes for irregular-low-densityparity-check codes, comprising: determining a maximum value of a columnweight; determining a basic matrix that fulfills conditions that theweights of a row and a column are constant and that the number of cycleis equal to or more than six based on the maximum value of a columnweight; determining a coding rate; searching an optimum ensemble of arow weight and a column weight according to a linear programming methodin a state of a fixed coding rate, and so as to maximize a Gaussiannoise; calculating an information length based on a predetermined blocklength and the coding rate; deleting a predetermined row based on theinformation length using the basic matrix; and carrying out a randomdivision of a row or a column of the matrixes after the row deletion ina predetermined order.
 2. The method according to claim 1, wherein thedeleting includes dividing at random the weight of each row in theEuclid geometric codes based on the ensemble, subtracting theinformation length from a number of rows after the division, and thendeleting a number of rows corresponding to the subtraction result whileadjusting the ratio of each the weights in the ensemble.
 3. The methodaccording to claim 1, wherein the deleting includes deleting apredetermined number of rows from the basic Euclid geometric codes, andthen dividing at random the weight of each row in the Euclid geometriccodes after the deletion based on the ensemble.
 4. The method accordingto claim 1, further comprising: adjusting a weight distribution in theensemble such that the total weight number of weight units is equal toan integer, and a sum of the total weight numbers of weight units isequal to the total number of “1”s in Euclid geometric codes, wherein thedividing is performed based on the adjusted ensemble.
 5. The methodaccording to claim 1, further comprising: creating a Latin square ofbasic random sequences; and dividing at random each column and each rowby extracting a weight “1”, from each row and each column in the Euclidgeometric codes.
 6. A method of generating check matrixes forirregular-LDPC codes using Euclid geometric codes, comprising:determining a maximum value of a column weight; determining Euclidgeometric codes based on the maximum value of a column weight;determining a coding rate; searching an optimum ensemble of a row weightand a column weight according to a linear programming method in a stateof a fixed coding rate, and so as to maximize a Gaussian noise;calculating an information length based on a predetermined block lengthand the coding rate; deleting a predetermined row based on theinformation length using the Euclid geometric codes; and dividing atrandom a row or a column of the matrixes after the row deletion in apredetermined order.
 7. The method according to claim 6, wherein thedeleting includes dividing at random the weight of each row in theEuclid geometric codes based on the ensemble, subtracting theinformation length from a number of rows after the division, and thendeleting a number of rows corresponding to the subtraction result whileadjusting the ratio of each the weights in the ensemble.
 8. The methodaccording to claim 6, wherein the deleting includes deleting apredetermined number of rows from the basic Euclid geometric codes, andthen dividing at random the weight of each row in the Euclid geometriccodes after the deletion based on the ensemble.
 9. The method accordingto claim 6, further comprising: adjusting a weight distribution in theensemble such that the total weight number of weight units is equal toan integer, and a sum of the total weight numbers of weight units isequal to the total number of “1”s in Euclid geometric codes, wherein thedividing is performed based on the adjusted ensemble.
 10. The methodaccording to claim 6, further comprising: creating a Latin square ofbasic random sequences; and dividing at random each column and each rowby extracting a weight “1” from each row and each column in the Euclidgeometric codes.
 11. A method of generating check matrixes forirregular-low-density parity-check codes, comprising: dividing theweight of a row or a column in the basic matrix that fulfills conditionsthat the weights of a row and a column are constant and that the numberof cycle is six or above using a predetermined polynomial; and deletinga cycle number 6 that becomes an element of characteristic degradation.12. A method of generating check matrixes for irregular-LDPC codes usingEuclid geometric codes, comprising: dividing the weight of a row or acolumn in the Euclid geometric codes using a predetermined polynomial;and deleting a cycle number 6 that exists in the Euclid geometric codesand that becomes an element of characteristic degradation.
 13. Anapparatus that generates check matrixes for irregular-low-densityparity-check codes, comprising: a weight determination unit thatdetermines a maximum value of a column weight; a basic matrixdetermination unit that determines a basic matrix that fulfillsconditions that the weights of a row and a column are constant and thatthe number of cycle is equal to or more than six based on the maximumvalue of a column weight; a coding rate determination unit thatdetermines a coding rate; a weight searching unit that searches anoptimum ensemble of a row weight and a column weight according to alinear programming method in a state of a fixed coding rate, and so asto maximize a Gaussian noise; an information calculation unit thatcalculates an information length based on a predetermined block lengthand the coding rate; a row deletion unit that deletes a predeterminedrow based on the information length using the basic matrix; and adivision unit that divides at random a row or a column of the matrixesafter the row deletion in a predetermined order.
 14. An apparatus thatgenerates check matrixes for irregular-LDPC codes using Euclid geometriccodes, comprising: a weight determination unit that determines a maximumvalue of a column weight; a Euclid geometric code determination unitthat determines Euclid geometric codes based on the maximum value of acolumn weight; a coding rate determination unit that determines a codingrate; a weight searching unit that searches an optimum ensemble of a rowweight and a column weight according to a linear programming method in astate of a fixed coding rate, and so as to maximize a Gaussian noise; aninformation calculation unit that calculates an information length basedon a predetermined block length and the coding rate; a row deletion unitthat deletes a predetermined row based on the information length usingthe Euclid geometric codes; and a division unit that divides at random arow or a column of the matrixes after the row deletion in apredetermined order.
 15. A communication apparatus that uses checkmatrixes for irregular-low-density parity-check codes, said checkmatrixes being generated by a method comprising: determining a maximumvalue of a column weight; determining a basic matrix that fulfillsconditions that the weights of a row and a column are constant and thatthe number of cycles is equal to or more than six based on the maximumvalue of a column weight; determining a coding rate; searching anoptimum ensemble of a row weight and a column weight according to alinear programming method in a state of a fixed coding rate, and so asto maximize a Gaussian noise; calculating an information length based ona predetermined block length and the coding rate; deleting apredetermined row based on the information length using the basicmatrix; and carrying out a random division of a row column of thematrixes after the row deletion in a predetermined order.